home *** CD-ROM | disk | FTP | other *** search
Text File | 2000-10-06 | 3.1 KB | 144 lines | [TEXT/CWIE] |
- // Play Movie with Controller Sample
- // Based on QTShell
- // WWDC 2000
-
- #include "ComApplication.h"
- #include "ComFramework.h"
- #include "MacFramework.h"
-
- //////////
- //
- // HandleEditMenuItem
- // Perform the specified edit operation on the specified window.
- //
- //////////
-
- void HandleEditMenuItem (WindowReference theWindow, UInt16 theMenuItem)
- {
- WindowObject myWindowObject = NULL;
- MovieController myMC = NULL;
- Movie myEditMovie = NULL; // the movie created by some editing operations
-
- // give the application-specific code a chance to intercept the menu item selection
- if (QTApp_HandleMenu(theMenuItem))
- return;
-
- myWindowObject = QTFrame_GetWindowObjectFromWindow(theWindow);
- myMC = QTFrame_GetMCFromWindow(theWindow);
-
- // make sure we have a valid movie controller and a valid window object
- if ((myMC == NULL) || (myWindowObject == NULL))
- return;
-
- switch (theMenuItem) {
-
- case IDM_EDITUNDO:
- MCUndo(myMC);
- (**myWindowObject).fIsDirty = true;
- break;
-
- case IDM_EDITCUT:
- myEditMovie = MCCut(myMC);
- (**myWindowObject).fIsDirty = true;
- break;
-
- case IDM_EDITCOPY:
- myEditMovie = MCCopy(myMC);
- break;
-
- case IDM_EDITPASTE:
- MCPaste(myMC, NULL);
- (**myWindowObject).fIsDirty = true;
- break;
-
- case IDM_EDITCLEAR:
- MCClear(myMC);
- (**myWindowObject).fIsDirty = true;
- break;
-
- case IDM_EDITSELECTALL:
- SelectAllMovie(myMC);
- break;
-
- case IDM_EDITSELECTNONE:
- SelectNoneMovie(myMC);
- break;
-
- default:
- break;
- } // switch (theMenuItem)
-
- // place any cut or copied movie segment onto the scrap
- if (myEditMovie != NULL) {
- PutMovieOnScrap(myEditMovie, 0L);
- DisposeMovie(myEditMovie);
- }
- }
-
- //////////
- //
- // SelectAllMovie
- // Select the entire movie associated with the specified movie controller.
- //
- //////////
-
- OSErr SelectAllMovie (MovieController theMC)
- {
- TimeRecord myTimeRecord;
- Movie myMovie = NULL;
- ComponentResult myErr = noErr;
-
- if (theMC == NULL)
- return(paramErr);
-
- myMovie = MCGetMovie(theMC);
- if (myMovie == NULL)
- return(paramErr);
-
- myTimeRecord.value.hi = 0;
- myTimeRecord.value.lo = 0;
- myTimeRecord.base = 0;
- myTimeRecord.scale = GetMovieTimeScale(myMovie);
- myErr = MCDoAction(theMC, mcActionSetSelectionBegin, &myTimeRecord);
- if (myErr != noErr)
- return((OSErr)myErr);
-
- myTimeRecord.value.hi = 0;
- myTimeRecord.value.lo = GetMovieDuration(myMovie);
- myTimeRecord.base = 0;
- myTimeRecord.scale = GetMovieTimeScale(myMovie);
- myErr = MCDoAction(theMC, mcActionSetSelectionDuration, &myTimeRecord);
-
- return((OSErr)myErr);
- }
-
-
- //////////
- //
- // SelectNoneMovie
- // Select none of the movie associated with the specified movie controller.
- //
- //////////
-
- OSErr SelectNoneMovie (MovieController theMC)
- {
- TimeRecord myTimeRecord;
- Movie myMovie = NULL;
- ComponentResult myErr = noErr;
-
- if (theMC == NULL)
- return(paramErr);
-
- myMovie = MCGetMovie(theMC);
- if (myMovie == NULL)
- return(paramErr);
-
- myTimeRecord.value.hi = 0;
- myTimeRecord.value.lo = 0;
- myTimeRecord.base = 0;
- myTimeRecord.scale = GetMovieTimeScale(myMovie);
- myErr = MCDoAction(theMC, mcActionSetSelectionDuration, &myTimeRecord);
-
- return((OSErr)myErr);
- }
-